Cloud computing and other distributed computing systems allow resource providers to offer computing resources for use by others over a network. For example, a resource provider may host a web-based application for a business, and enable use of the web-based application over the Internet. Some companies have organizational distributed computing systems in which employees or departments may be able to request and use computing resources of the distributed computing system.
Capacity planning for such computing systems can be a complex process that may require knowledge of resource supply, forecasted demand, and characteristics of the computing resources. Traditional resource planning approaches often involve individuals performing calculations to determine resource shortfalls, manually translating that shortfall into computing resources, and manually choosing locations to fulfill demand such that software services will meet their service level objectives. This can result in a system that is slow to adapt to changes, requires intensive manual labor, and potentially results in non-optimal solutions through human inefficiencies or errors.